package com.palmshop.online.service;

import java.util.Map;

import javax.servlet.http.HttpServletRequest;

import com.palmshop.online.entity.CusAddr;
import com.palmshop.online.entity.Customer;
import com.palmshop.online.entity.PalmResult;

/**
 * 用户相关service
 * @author quan
 *
 */
public interface CusService {
	
	/**
	 * 用户注册
	 * @param cus:用户实体类对象
	 * @return result
	 */
	public PalmResult addCus(Customer cus);
	
	/**
	 * 注册验证 当前用户是否已注册
	 * @param cusAccount:登录号
	 * @return result
	 */
	public PalmResult findCusExist(String cusAccount);
	
	/**
	 * 注册验证 当前用户是否已注册
	 * @param map
	 * @return result
	 */
	public PalmResult findCheckLogin(HttpServletRequest request,Map<String,Object> map);
	
	/**
	 * 根据用户ip获取用户的当前位置
	 * @param request
	 * @return result
	 */
	public PalmResult getLocation(HttpServletRequest request);
	
	
	/**
	 * 查询用户的基本信息
	 * @param cusUnique:用户唯一性标识
	 * @return result
	 */
	public PalmResult findCusById(String cusUnique);
	
	
	
	/**
	 * 根据用户的id修改对应的用户基本信息
	 * @param cus:用户实体类对象
	 * @return result
	 */
	public PalmResult updateCusById(Customer cus);
	
	/**
	 * 修改用的默认地址
	 * @return result
	 */
	public PalmResult updateAddrDefByCus(String cusUnique,Integer addrId);
	
	
	/**
	 * 根据用户id修改对应的用户密码
	 * @param map
	 * @return result
	 */
	public PalmResult updatePassWord(Map map);
	
	
	/**
	 * 个人中心根据地址id修改对应的地址信息
	 * 
	 * @param map
	 * @return result
	 */
	public PalmResult updateAddrByIdP(Map map);
	
	
	
	
	/**
	 * 根据用户id确认密码是否正确
	 * @param map
	 * @return result
	 */
	public PalmResult findRWByCusId(Map map);
	
	
	/**
	 * 根据用户的邮箱找回密码
	 * @param cusEmail:用户邮箱
	 * @return result
	 */
	public PalmResult findPwd(String cusEmail);
	
	
	/*>>>>>>>>>>>>>>>>用户积分>>>>>>>>>>>>>>>>>>>>>>>>>>>>>*/
	/**
	 * 根据用户的id查询对应的积分信息
	 * @param cusUnique:用户唯一性标识
	 * @return result
	 */
	public  PalmResult findPointsById(String cusUnique);
	
	
	/**
	 * 
	 * @param map
	 * @return result
	 */
	public PalmResult findPointsExistById(Map map);
	
	
	
	/*>>>>end 用户积分 end>>>>>>>>>>>>>>>>*/
	
	
	
/*>>>>>>>>>>>>>>>>用户地址>>>>>>>>>>>>>>>>>>>>>>>>>>>>>*/
	
	/**
	 * 向收货地址表中插入一条新的数据
	 * @param cusAddr:用户地址实体类对象
	 * @return result
	 */
	public PalmResult addCusAddr(CusAddr cusAddr);
	
	
	/**
	 * 根据地址id删除对应的地址信息
	 * @param addrId:地址id
	 * @return result
	 */
	public PalmResult deleteAddr(Integer addrId);
	

	/**
	 * 根据地址id修改对应的地址信息
	 * @param map
	 * @return result
	 */
	public PalmResult updateAddrById(Map map);
	

	/**
	 * 根据地址id查询对应的地址信息
	 * @return result
	 */
	public PalmResult findAddrByIdA(Integer addrId);
	
	
	/**
	 * 根据用户的id查询对应的地址信息
	 * @return result
	 */
	public PalmResult findAddrByCusId(String cusUnique);

	
	/**
	 * 根据用户的id查询对应的地址信息
	 * @return result
	 */
	public PalmResult findAddrById(String cusUnique);
	
	
	/*>>>>end 用户地址 end>>>>>>>>>>>>>>>>*/
	
	
	
	
	
	
	
}
